package com.biz.primus.behavior.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author jiangnan
 * @Description:
 */
@Data
@ApiModel("用户行为Vo")
public class UserBehaviorVo implements Serializable {
    private static final long serialVersionUID = -387459469276131791L;

    @NotNull
    @ApiModelProperty("取值‘behavior’")
    private String action;

    @NotNull
    @ApiModelProperty("行为类型")
    private String bhv_type;

    @NotNull
    @ApiModelProperty("用户Id")
    private String user_id;

    @NotNull
    @ApiModelProperty("行为对象Id")
    private String act_obj;

    @ApiModelProperty("行为对象类型，默认为item")
    private String obj_type;

    @ApiModelProperty("如果发生行为的物品是推荐引擎引导，取值为同推荐列表一起返回的trace_id")
    private String trace_id;

    @NotNull
    @ApiModelProperty("行为时间,字符串e格式 ‘yyyy-MM-dd HH:mm:ss’")
    private String bhv_datetime;

    @ApiModelProperty("行为发生的位置类型，有三种取值" +
            "ll：经纬度格式的位置信息" +
            "gh：geohash格式的位置信息" +
            "poi：poi格式的位置信息")
    private String pos_type;

    @ApiModelProperty("行为发生的位置，根据pos_type有不同的取值格式：" +
            "如果pos_type=ll，position格式’longitude:latitude’ " +
            "如果pos_type=gh，position格式 ‘geohashcode’" +
            "如果pos_type=poi，position格式’poi_string’")
    private String position;

    @ApiModelProperty("其他环境参数，如IP，Network")
    private Object env;

    @ApiModelProperty("板块分组信息，逗号分隔字符串")
    private String plates;

}
